#include <bits/stdc++.h>

using namespace std;

class Solution
{
public:
    // string reverseStr(string s, int k)
    // {
    //     bool flag = true;
    //     int index = 0;
    //     int length = s.size();
    //     while (index < length)
    //     {
    //         if (flag == true)
    //         {
    //             int i = index;
    //             int j = index + k - 1;
    //             if (j >= length)
    //             {
    //                 j = length - 1;
    //             }
    //             while (i < j)
    //             {
    //                 swap(s[i], s[j]);
    //                 i++;
    //                 j--;
    //             }
    //             flag = false;
    //             index = index + k;
    //         }
    //         else
    //         {
    //             flag = true;
    //             index = index + k;
    //         }
    //     }
    //     return s;
    // }

    // string reverseStr(string s, int k)
    // {
    //     int length = s.size();
    //     for (int i = 0; i < length; i = i + 2 * k)
    //     {
    //         if (i + k <= length)
    //         {
    //             reverse(s.begin() + i, s.begin() + i + k);
    //         }
    //         else
    //         {
    //             reverse(s.begin() + i, s.end());
    //         }
    //     }
    //     return s;
    // }

    void reverse(string &s, int start, int end)
    {
        for (; start < end; start++, end--)
        {
            swap(s[start], s[end]);
        }
    }

    string reverseStr(string s, int k)
    {
        int length = s.size();
        for (int i = 0; i < length; i = i + 2 * k)
        {
            if (i + k <= length)
            {
                reverse(s, i, i + k - 1);
            }
            else
            {
                reverse(s, i, length - 1);
            }
        }
        return s;
    }
};

int main()
{
    // string str = "abcdefg";
    string str = "abcdefgh";
    Solution sol;
    string res = sol.reverseStr(str, 3);
    cout << res << endl;
    return 0;
}